package com.lmbx.shzh.mapper;

import com.lmbx.shzh.domain.vo.AlarmListVO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface RainMapper {

    List<Map<String, String>> getRain();

    List<Map<String, String>> getRainNum();

    List<Map<String, String>> getRainTown(@Param("vCode") String vCode, @Param("hour") int hour, @Param("vCodeLevel") int vCodeLevel, @Param("vCodeLength") int vCodeLength);

    List<Map<String, String>> getRsvrAll();

    List<Map<String, String>> getRsvr();

    List<Map<String, String>> getRsverAll();

    List<Map<String, String>> getRsver();

    List<Map<String, String>> getWarnInfo();

    List<Map<String, String>> getRainFull();

    List<Map<String, String>> getStationRain(@Param("vCode") String vCode, @Param("vCodeLevel") int vCodeLevel, @Param("num") int num, @Param("vCodeLength") int vCodeLength);


    List<Map<String, String>> rain(@Param("vCode") String vCode, @Param("hour") int hour, @Param("vCodeLevel") int vCodeLevel, @Param("vCodeLength") int vCodeLength);
    List<Map<String, String>> ycRain(@Param("vCode") String vCode, @Param("hour") int hour, @Param("vCodeLevel") int vCodeLevel, @Param("vCodeLength") int vCodeLength);

    List<Map<String, String>> getRain(@Param("vCode") String vCode, @Param("vCodeLevel") int vCodeLevel, @Param("vCodeLength") int vCodeLength, @Param("bt") Date bt, @Param("et") Date et);

    List<Map<String, String>> getRiver(@Param("vCode") String vCode, @Param("vCodeLevel") int vCodeLevel, @Param("vCodeLength") int vCodeLength, @Param("bt") Date bt, @Param("et") Date et);

    List<Map<String, String>> getRsvr(@Param("vCode") String vCode, @Param("vCodeLevel") int vCodeLevel, @Param("vCodeLength") int vCodeLength, @Param("bt") Date bt, @Param("et") Date et);

    List<Map<String, String>> warn(@Param("vCode") String vCode, @Param("vCodeLevel") int vCodeLevel, @Param("vCodeLength") int vCodeLength, @Param("bt") Date bt, @Param("et") Date et);

    List<Map<String, String>> rvfcch(@Param("vCode") String vCode, @Param("hour") int hour, @Param("vCodeLevel") int vCodeLevel, @Param("vCodeLength") int vCodeLength);

    int rsvrCountOverWarn(@Param("bt") Date bt, @Param("et") Date et);

    int riverCountOverWarn(@Param("bt") Date bt, @Param("et") Date et);

    int rainingCount(@Param("bt") Date bt, @Param("et") Date et);

    Map<String, String> maxRainAddress(@Param("bt") Date bt, @Param("et") Date et);

    int shWarnCount(@Param("bt") Date bt, @Param("et") Date et, @Param("gradeID") Integer gradeID, @Param("statusID") Integer statusID);

    void insertAlarm(@Param("alarm") AlarmListVO alarm);
    void updateAlarm(@Param("alarm") AlarmListVO alarm);
    Map<String, String> getAlarmById(@Param("alarmId") String alarmId);
    List<Map<String, String>> getAlarmList();

    String getCameraIdByRegionId(@Param("region_index_code") String region_index_code);
    String getStcdByCameraId(@Param("cameraId") String cameraId);

    List<Map<String, String>> getRainInfo(@Param("stcd") String stcd, @Param("bt") Date bt, @Param("et") Date et);
    List<Map<String, String>> getRsvrInfo(@Param("stcd") String stcd, @Param("bt") Date bt, @Param("et") Date et);

    List<Map<String, String>> getRiverInfo(@Param("stcd") String stcd, @Param("bt") Date bt, @Param("et") Date et);

    Map<String, Integer> getWarnById(@Param("warnID") String warnID, @Param("statusID") String statusID);
}
